package com.iplant.aps.service.po.oms;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;
import java.util.Calendar;

/**
 * 订单
 *
 * @author PengYouWang
 * 2019年12月27日12:54:19
 */
public class OMSOrder implements Serializable {

    /**
     * 序列号
     */
    private static final long serialVersionUID = 1L;
    /**
     * 唯一编号
     */
    public int ID;
    /**
     * 生产命令票ID
     */
    public int CommandID;
    /**
     * ERPID
     */
    public int ERPID;
    /**
     * 订单号
     */
    public String OrderNo = "";
    /**
     * 修程ID
     */
    public int LineID;
    /**
     * 修程
     */
    public String LineName = "";
    /**
     * 车型ID
     */
    public int ProductID;
    /**
     * 车型编码
     */
    public String ProductNo = "";
    /**
     * 局段ID
     */
    public int BureauSectionID;
    /**
     * 局段
     */
    public String BureauSection = "";

    /**
     * 车号
     */
    public String PartNo = "";
    /**
     * BOM编号
     */
    public String BOMNo = "";
    /**
     * 优先级
     */
    public int Priority = 0;
    /**
     * 台车订单状态
     */
    public int Status;
    /**
     * 计划进厂日期
     */
    public Calendar PlanReceiveDate = Calendar.getInstance();
    /**
     * 实际进厂日期
     */
    public Calendar RealReceiveDate = Calendar.getInstance();
    /**
     * 预计完工日期
     */
    public Calendar PlanFinishDate = Calendar.getInstance();
    /**
     * 实际开工日期
     */
    public Calendar RealStartDate = Calendar.getInstance();
    /**
     * 实际完工日期
     */
    public Calendar RealFinishDate = Calendar.getInstance();
    /**
     * 发车日期 （交车日期）
     */
    public Calendar RealSendDate = Calendar.getInstance();
    /**
     * 备注信息
     */
    public String Remark = "";
    /**
     * 创建人ID
     */
    public int CreateID;
    /**
     * 创建人名称
     */
    public String Creator = "";
    /**
     * 创建时刻
     */
    public Calendar CreateTime = Calendar.getInstance();
    /**
     * 编辑人ID
     */
    public int EditID;
    /**
     * 编辑人名称
     */
    public String Editor = "";
    /**
     * 编辑时刻
     */
    public Calendar EditTime = Calendar.getInstance();
    /**
     * 审核人ID
     */
    public int AuditorID = 0;
    /**
     * 审核人Name
     */
    public String Auditor = "";
    /**
     * 审核时刻
     */
    public Calendar AuditTime = Calendar.getInstance();
    /**
     * 订单有效状态
     */
    public int Active = 0;
    /**
     * 工艺路线ID
     */
    public int RouteID = 0;
    /**
     * 电报时刻
     */
    public Calendar TelegraphTime = Calendar.getInstance();
    /**
     * 电报到厂时刻
     */
    public Calendar TelegraphRealTime = Calendar.getInstance();

    // Command表属性
    /**
     * WBS编号
     */
    public String WBSNo = "";
    public int CustomerID = 0;
    public String Customer = "";
    public String ContactCode = "";
    public String No = "";
    public int LinkManID;
    public String LinkMan = "";
    public int FactoryID;
    public String Factory = "";
    public int BusinessUnitID;
    public String BusinessUnit = "";
    public int FQTYPlan;
    public int FQTYActual;

    // 辅助属性
    public boolean IsCreateAPSBom = false;

    /**
     * 停时
     */
    public int StopTime = 0;

    /**
     * 工位总数
     */
    public int StationTotalSize = 0;
    /**
     * 工位完成数
     */
    public int StationFinishSize = 0;

    /**
     * 离段时间
     */
    public Calendar TimeAway = Calendar.getInstance();
    /**
     * 电报竣工时刻
     */
    public Calendar CompletionTelegramTime = Calendar.getInstance();
    /**
     * 接车司机到厂日期
     */
    public Calendar DriverOnTime = Calendar.getInstance();
    /**
     * 到段时间
     */
    public Calendar ToSegmentTime = Calendar.getInstance();
    /**
     * 实际检修停时
     */
    public int ActualRepairStopTimes = 0;
    /**
     * 电报检修停时
     */
    public int TelegraphRepairStopTimes = 0;
    /**
     * 在厂停时
     */
    public int InPlantStopTimes = 0;
    /**
     * 在途停时
     */
    public int OnTheWayStopTimes = 0;
    /**
     * 验后停时
     */
    public int PosterioriStopTimes = 0;

    /**
     * 订单类型
     */
    public int OrderType = 1;
    public String OrderTypeName = "";
    /**
     * 父订单ID
     */
    public int ParentID = 0;

    /**
     * 年度
     */
    public int Year = 0;

    //2023-3-2 10:07:42 优化排程方案，新增辅助属性
    /**
     * 开始工位
     */
    public int StartPartID = 0;
    /**
     * 开始工位名称
     */
    public String StartPartName = "";

    /**
     * 计划开工日期
     */
    public Calendar PlanStartDate = Calendar.getInstance();

    /**
     * 结束工位
     */
    public int EndPartID = 0;
    /**
     * 结束工位名称
     */
    public String EndPartName = "";

    /**
     * 计划完工日期
     */
    public Calendar PlanEndDate = Calendar.getInstance();

    /**
     * 计划制定日期
     */
    public Calendar PlanMakeDate = Calendar.getInstance();
    /**
     * 制定人ID
     */
    public int MakePersonID = 0;
    /**
     * 制定人名称
     */
    public String MakePersonName = "";

    /**
     * 是否制定计划
     */
    public int IsHasPlan = 0;

    /**
     * 部件总数
     */
    public int PartsNumber = 0;
    /**
     * 已做部件计划数
     */
    public int PartsPlanDoneNumber = 0;

    /**
     * 辅助属性：bomID
     */
    public int BOMID = 0;

    /**
     *当前bop版本号
     */
    public String RouteVersion="";
    /**
     *进厂bop版本号
     */
    public String HisRouteVersion="";

    public OMSOrder() {
        PlanReceiveDate.set(2000, 0, 1);
        RealReceiveDate.set(2000, 0, 1);
        PlanFinishDate.set(2000, 0, 1);
        RealStartDate.set(2000, 0, 1);
        RealFinishDate.set(2000, 0, 1);
        RealSendDate.set(2000, 0, 1);
        CreateTime.set(2000, 0, 1);
        EditTime.set(2000, 0, 1);
        AuditTime.set(2000, 0, 1);
        TelegraphTime.set(2000, 0, 1);
        TelegraphRealTime.set(2000, 0, 1);
        TimeAway.set(2000, 0, 1);
        CompletionTelegramTime.set(2000, 0, 1);
        DriverOnTime.set(2000, 0, 1);
        ToSegmentTime.set(2000, 0, 1);
    }


    @JsonProperty("ID")
    public int getID() {
        return ID;
    }

    public void setID(int ID) {
        this.ID = ID;
    }

    @JsonProperty("CommandID")
    public int getCommandID() {
        return CommandID;
    }

    public void setCommandID(int commandID) {
        CommandID = commandID;
    }

    @JsonProperty("ERPID")
    public int getERPID() {
        return ERPID;
    }

    public void setERPID(int ERPID) {
        this.ERPID = ERPID;
    }

    @JsonProperty("OrderNo")
    public String getOrderNo() {
        return OrderNo;
    }

    public void setOrderNo(String orderNo) {
        OrderNo = orderNo;
    }

    @JsonProperty("LineID")
    public int getLineID() {
        return LineID;
    }

    public void setLineID(int lineID) {
        LineID = lineID;
    }

    @JsonProperty("LineName")
    public String getLineName() {
        return LineName;
    }

    public void setLineName(String lineName) {
        LineName = lineName;
    }

    @JsonProperty("ProductID")
    public int getProductID() {
        return ProductID;
    }

    public void setProductID(int productID) {
        ProductID = productID;
    }

    @JsonProperty("ProductNo")
    public String getProductNo() {
        return ProductNo;
    }

    public void setProductNo(String productNo) {
        ProductNo = productNo;
    }

    @JsonProperty("BureauSectionID")
    public int getBureauSectionID() {
        return BureauSectionID;
    }

    public void setBureauSectionID(int bureauSectionID) {
        BureauSectionID = bureauSectionID;
    }

    @JsonProperty("BureauSection")
    public String getBureauSection() {
        return BureauSection;
    }

    public void setBureauSection(String bureauSection) {
        BureauSection = bureauSection;
    }

    @JsonProperty("PartNo")
    public String getPartNo() {
        return PartNo;
    }

    public void setPartNo(String partNo) {
        PartNo = partNo;
    }

    @JsonProperty("BOMNo")
    public String getBOMNo() {
        return BOMNo;
    }

    public void setBOMNo(String BOMNo) {
        this.BOMNo = BOMNo;
    }

    @JsonProperty("Priority")
    public int getPriority() {
        return Priority;
    }

    public void setPriority(int priority) {
        Priority = priority;
    }

    @JsonProperty("Status")
    public int getStatus() {
        return Status;
    }

    public void setStatus(int status) {
        Status = status;
    }

    @JsonProperty("PlanReceiveDate")
    public Calendar getPlanReceiveDate() {
        return PlanReceiveDate;
    }

    public void setPlanReceiveDate(Calendar planReceiveDate) {
        PlanReceiveDate = planReceiveDate;
    }

    @JsonProperty("RealReceiveDate")
    public Calendar getRealReceiveDate() {
        return RealReceiveDate;
    }

    public void setRealReceiveDate(Calendar realReceiveDate) {
        RealReceiveDate = realReceiveDate;
    }

    @JsonProperty("PlanFinishDate")
    public Calendar getPlanFinishDate() {
        return PlanFinishDate;
    }

    public void setPlanFinishDate(Calendar planFinishDate) {
        PlanFinishDate = planFinishDate;
    }

    @JsonProperty("RealStartDate")
    public Calendar getRealStartDate() {
        return RealStartDate;
    }

    public void setRealStartDate(Calendar realStartDate) {
        RealStartDate = realStartDate;
    }

    @JsonProperty("RealFinishDate")
    public Calendar getRealFinishDate() {
        return RealFinishDate;
    }

    public void setRealFinishDate(Calendar realFinishDate) {
        RealFinishDate = realFinishDate;
    }

    @JsonProperty("RealSendDate")
    public Calendar getRealSendDate() {
        return RealSendDate;
    }

    public void setRealSendDate(Calendar realSendDate) {
        RealSendDate = realSendDate;
    }

    @JsonProperty("Remark")
    public String getRemark() {
        return Remark;
    }

    public void setRemark(String remark) {
        Remark = remark;
    }

    @JsonProperty("CreateID")
    public int getCreateID() {
        return CreateID;
    }

    public void setCreateID(int createID) {
        CreateID = createID;
    }

    @JsonProperty("Creator")
    public String getCreator() {
        return Creator;
    }

    public void setCreator(String creator) {
        Creator = creator;
    }

    @JsonProperty("CreateTime")
    public Calendar getCreateTime() {
        return CreateTime;
    }

    public void setCreateTime(Calendar createTime) {
        CreateTime = createTime;
    }

    @JsonProperty("EditID")
    public int getEditID() {
        return EditID;
    }

    public void setEditID(int editID) {
        EditID = editID;
    }

    @JsonProperty("Editor")
    public String getEditor() {
        return Editor;
    }

    public void setEditor(String editor) {
        Editor = editor;
    }

    @JsonProperty("EditTime")
    public Calendar getEditTime() {
        return EditTime;
    }

    public void setEditTime(Calendar editTime) {
        EditTime = editTime;
    }

    @JsonProperty("AuditorID")
    public int getAuditorID() {
        return AuditorID;
    }

    public void setAuditorID(int auditorID) {
        AuditorID = auditorID;
    }

    @JsonProperty("Auditor")
    public String getAuditor() {
        return Auditor;
    }

    public void setAuditor(String auditor) {
        Auditor = auditor;
    }

    @JsonProperty("AuditTime")
    public Calendar getAuditTime() {
        return AuditTime;
    }

    public void setAuditTime(Calendar auditTime) {
        AuditTime = auditTime;
    }

    @JsonProperty("Active")
    public int getActive() {
        return Active;
    }

    public void setActive(int active) {
        Active = active;
    }

    @JsonProperty("RouteID")
    public int getRouteID() {
        return RouteID;
    }

    public void setRouteID(int routeID) {
        RouteID = routeID;
    }

    @JsonProperty("TelegraphTime")
    public Calendar getTelegraphTime() {
        return TelegraphTime;
    }

    public void setTelegraphTime(Calendar telegraphTime) {
        TelegraphTime = telegraphTime;
    }

    @JsonProperty("TelegraphRealTime")
    public Calendar getTelegraphRealTime() {
        return TelegraphRealTime;
    }

    public void setTelegraphRealTime(Calendar telegraphRealTime) {
        TelegraphRealTime = telegraphRealTime;
    }

    @JsonProperty("WBSNo")
    public String getWBSNo() {
        return WBSNo;
    }

    public void setWBSNo(String WBSNo) {
        this.WBSNo = WBSNo;
    }

    @JsonProperty("CustomerID")
    public int getCustomerID() {
        return CustomerID;
    }

    public void setCustomerID(int customerID) {
        CustomerID = customerID;
    }

    @JsonProperty("Customer")
    public String getCustomer() {
        return Customer;
    }

    public void setCustomer(String customer) {
        Customer = customer;
    }

    @JsonProperty("ContactCode")
    public String getContactCode() {
        return ContactCode;
    }

    public void setContactCode(String contactCode) {
        ContactCode = contactCode;
    }

    @JsonProperty("No")
    public String getNo() {
        return No;
    }

    public void setNo(String no) {
        No = no;
    }

    @JsonProperty("LinkManID")
    public int getLinkManID() {
        return LinkManID;
    }

    public void setLinkManID(int linkManID) {
        LinkManID = linkManID;
    }

    @JsonProperty("LinkMan")
    public String getLinkMan() {
        return LinkMan;
    }

    public void setLinkMan(String linkMan) {
        LinkMan = linkMan;
    }

    @JsonProperty("FactoryID")
    public int getFactoryID() {
        return FactoryID;
    }

    public void setFactoryID(int factoryID) {
        FactoryID = factoryID;
    }

    @JsonProperty("Factory")
    public String getFactory() {
        return Factory;
    }

    public void setFactory(String factory) {
        Factory = factory;
    }

    @JsonProperty("BusinessUnitID")
    public int getBusinessUnitID() {
        return BusinessUnitID;
    }

    public void setBusinessUnitID(int businessUnitID) {
        BusinessUnitID = businessUnitID;
    }

    @JsonProperty("BusinessUnit")
    public String getBusinessUnit() {
        return BusinessUnit;
    }

    public void setBusinessUnit(String businessUnit) {
        BusinessUnit = businessUnit;
    }

    @JsonProperty("FQTYPlan")
    public int getFQTYPlan() {
        return FQTYPlan;
    }

    public void setFQTYPlan(int FQTYPlan) {
        this.FQTYPlan = FQTYPlan;
    }

    @JsonProperty("FQTYActual")
    public int getFQTYActual() {
        return FQTYActual;
    }

    public void setFQTYActual(int FQTYActual) {
        this.FQTYActual = FQTYActual;
    }

    @JsonProperty("IsCreateAPSBom")
    public boolean isCreateAPSBom() {
        return IsCreateAPSBom;
    }

    public void setCreateAPSBom(boolean createAPSBom) {
        IsCreateAPSBom = createAPSBom;
    }

    @JsonProperty("StopTime")
    public int getStopTime() {
        return StopTime;
    }

    public void setStopTime(int stopTime) {
        StopTime = stopTime;
    }

    @JsonProperty("StationTotalSize")
    public int getStationTotalSize() {
        return StationTotalSize;
    }

    public void setStationTotalSize(int stationTotalSize) {
        StationTotalSize = stationTotalSize;
    }

    @JsonProperty("StationFinishSize")
    public int getStationFinishSize() {
        return StationFinishSize;
    }

    public void setStationFinishSize(int stationFinishSize) {
        StationFinishSize = stationFinishSize;
    }

    @JsonProperty("TimeAway")
    public Calendar getTimeAway() {
        return TimeAway;
    }

    public void setTimeAway(Calendar timeAway) {
        TimeAway = timeAway;
    }

    @JsonProperty("CompletionTelegramTime")
    public Calendar getCompletionTelegramTime() {
        return CompletionTelegramTime;
    }

    public void setCompletionTelegramTime(Calendar completionTelegramTime) {
        CompletionTelegramTime = completionTelegramTime;
    }

    @JsonProperty("DriverOnTime")
    public Calendar getDriverOnTime() {
        return DriverOnTime;
    }

    public void setDriverOnTime(Calendar driverOnTime) {
        DriverOnTime = driverOnTime;
    }

    @JsonProperty("ToSegmentTime")
    public Calendar getToSegmentTime() {
        return ToSegmentTime;
    }

    public void setToSegmentTime(Calendar toSegmentTime) {
        ToSegmentTime = toSegmentTime;
    }

    @JsonProperty("ActualRepairStopTimes")
    public int getActualRepairStopTimes() {
        return ActualRepairStopTimes;
    }

    public void setActualRepairStopTimes(int actualRepairStopTimes) {
        ActualRepairStopTimes = actualRepairStopTimes;
    }

    @JsonProperty("TelegraphRepairStopTimes")
    public int getTelegraphRepairStopTimes() {
        return TelegraphRepairStopTimes;
    }

    public void setTelegraphRepairStopTimes(int telegraphRepairStopTimes) {
        TelegraphRepairStopTimes = telegraphRepairStopTimes;
    }

    @JsonProperty("InPlantStopTimes")
    public int getInPlantStopTimes() {
        return InPlantStopTimes;
    }

    public void setInPlantStopTimes(int inPlantStopTimes) {
        InPlantStopTimes = inPlantStopTimes;
    }

    @JsonProperty("OnTheWayStopTimes")
    public int getOnTheWayStopTimes() {
        return OnTheWayStopTimes;
    }

    public void setOnTheWayStopTimes(int onTheWayStopTimes) {
        OnTheWayStopTimes = onTheWayStopTimes;
    }

    @JsonProperty("PosterioriStopTimes")
    public int getPosterioriStopTimes() {
        return PosterioriStopTimes;
    }

    public void setPosterioriStopTimes(int posterioriStopTimes) {
        PosterioriStopTimes = posterioriStopTimes;
    }

    @JsonProperty("OrderType")
    public int getOrderType() {
        return OrderType;
    }

    public void setOrderType(int orderType) {
        OrderType = orderType;
    }

    @JsonProperty("OrderTypeName")
    public String getOrderTypeName() {
        return OrderTypeName;
    }

    public void setOrderTypeName(String orderTypeName) {
        OrderTypeName = orderTypeName;
    }

    @JsonProperty("ParentID")
    public int getParentID() {
        return ParentID;
    }

    public void setParentID(int parentID) {
        ParentID = parentID;
    }

    @JsonProperty("Year")
    public int getYear() {
        return Year;
    }

    public void setYear(int year) {
        Year = year;
    }

    @JsonProperty("StartPartID")
    public int getStartPartID() {
        return StartPartID;
    }

    public void setStartPartID(int startPartID) {
        StartPartID = startPartID;
    }

    @JsonProperty("StartPartName")
    public String getStartPartName() {
        return StartPartName;
    }

    public void setStartPartName(String startPartName) {
        StartPartName = startPartName;
    }

    @JsonProperty("PlanStartDate")
    public Calendar getPlanStartDate() {
        return PlanStartDate;
    }

    public void setPlanStartDate(Calendar planStartDate) {
        PlanStartDate = planStartDate;
    }

    @JsonProperty("EndPartID")
    public int getEndPartID() {
        return EndPartID;
    }

    public void setEndPartID(int endPartID) {
        EndPartID = endPartID;
    }

    @JsonProperty("EndPartName")
    public String getEndPartName() {
        return EndPartName;
    }

    public void setEndPartName(String endPartName) {
        EndPartName = endPartName;
    }

    @JsonProperty("PlanEndDate")
    public Calendar getPlanEndDate() {
        return PlanEndDate;
    }

    public void setPlanEndDate(Calendar planEndDate) {
        PlanEndDate = planEndDate;
    }

    @JsonProperty("PlanMakeDate")
    public Calendar getPlanMakeDate() {
        return PlanMakeDate;
    }

    public void setPlanMakeDate(Calendar planMakeDate) {
        PlanMakeDate = planMakeDate;
    }

    @JsonProperty("MakePersonID")
    public int getMakePersonID() {
        return MakePersonID;
    }

    public void setMakePersonID(int makePersonID) {
        MakePersonID = makePersonID;
    }

    @JsonProperty("MakePersonName")
    public String getMakePersonName() {
        return MakePersonName;
    }

    public void setMakePersonName(String makePersonName) {
        MakePersonName = makePersonName;
    }

    @JsonProperty("IsHasPlan")
    public int getIsHasPlan() {
        return IsHasPlan;
    }

    public void setIsHasPlan(int isHasPlan) {
        IsHasPlan = isHasPlan;
    }

    @JsonProperty("PartsNumber")
    public int getPartsNumber() {
        return PartsNumber;
    }

    public void setPartsNumber(int partsNumber) {
        PartsNumber = partsNumber;
    }

    @JsonProperty("PartsPlanDoneNumber")
    public int getPartsPlanDoneNumber() {
        return PartsPlanDoneNumber;
    }

    public void setPartsPlanDoneNumber(int partsPlanDoneNumber) {
        PartsPlanDoneNumber = partsPlanDoneNumber;
    }

    @JsonProperty("BOMID")
    public int getBOMID() {
        return BOMID;
    }

    public void setBOMID(int BOMID) {
        this.BOMID = BOMID;
    }

    @JsonProperty("RouteVersion")
    public String getRouteVersion() {
        return RouteVersion;
    }

    public void setRouteVersion(String routeVersion) {
        RouteVersion = routeVersion;
    }

    @JsonProperty("HisRouteVersion")
    public String getHisRouteVersion() {
        return HisRouteVersion;
    }

    public void setHisRouteVersion(String hisRouteVersion) {
        HisRouteVersion = hisRouteVersion;
    }
}
